home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 192
/
192.d81
/
rh-pinochle 2
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
25KB
|
639 lines
1 rem "rh-pinochle 2c" 2000.05.09 *** compacted version
2 gosub3002
3 gosub12:onqgoto9,4,3,3,3
4 gosub1002:onqgoto9,4:gosub1202:onqgoto9,4:ifbp=290then4
5 gosub1402:onqgoto9,4:gosub1802:onqgoto9,4:iff=2thenon2+(q<>5)goto4,3
6 gosub2002:onqgoto9,4,4,4,3
9 goto4002
12 pokevl+39,1:ifq=4thenq=3:goto30
18 sysml+9:i%=cr%:on2+(i%>0)goto22:sysml+60,a$(28):on2+(i%>0)goto22
20 on1+fnhp(p)goto22:on2+(r1%=0andr2%=0)goto18:q=4:goto30
22 q=3:ifi%<5thenoni%gosub2978,2902,2916,2964:onqgoto30,30:on2+fnhp(p)goto18,30
24 ifbn>-1thenifi%>=bnthenbq=i%-bn:goto30
26 bq=-1:c=i%-5:a=(c>=cn):c=c+cn*a
28 on2+(s%(c,p)>-1)goto30:on2+(c=0ora)goto18:c=c-1:on2+s%(c,p)goto18
30 pokevl+39,7:return
36 sysml+24,(m*b%(d%(3,0))):wait653,1,1:return
102 on2+fnec(p)gosub110,122:return
110 forc=0tocn-2:gosub138:gosub146:gosub162:onp+1gosub190,204,212,204:next
116 c=cn-1:gosub138:gosub146:gosub154:return
122 on2+(ca=0)goto134:t=pand253:forc=catocz:ontgoto130
128 sysml+126,x%(c,p),x%(c,p),y%(c,p),y%(c,p)+1,97,98,c%(2),c%(2):goto132
130 sysml+12,x%(c,p),y%(c,p),a$(23)
132 next
134 return
138 r=r%(c,p):s=s%(c,p):return
146 x=x%(ca+c,p):y=y%(ca+c,p):return
154 gosub162:onp+1gosub170,204,212,204:poke646,c%(2):return
162 poke646,c%(3+(sand253)):return
170 gosub162:sysml+12,x,y,r$(r)+a$(24):sysml+12,x,y+1,s$(s)+a$(24)
180 sysml+12,x,y+2,a$(24)+s$(s):sysml+12,x,y+3,a$(24)+r$(r):poke646,c%(2):return
190 gosub162:sysml+12,x,y,r$(r):sysml+12,x,y+1,s$(s)
196 poke646,c%(0):sysml+12,x+1,y,a$(25):sysml+12,x+1,y+1,a$(25)
198 sysml+12,x,y+2,a$(26):sysml+12,x,y+3,a$(26):poke646,c%(2):return
204 sysml+12,x,y,r$(r)+s$(s):return
212 sysml+12,x,y,r$(r):sysml+12,x,y+1,s$(s):return
220 gosub146:onpgoto226,228,226:sysml+30,x,x-2*(c=cn-1),y,y+3,255,cc:goto230
226 sysml+30,x,x+1,y,y,255,cc:goto230
228 sysml+30,x,x,y,y+1,255,cc
230 return
234 l=len(a$):onpgoto242,244,246
240 x=20-l/2:y=ys%(p)-7:goto248
242 x=xs%(p)+5:y=11:goto248
244 x=20-l/2:y=ys%(p)+5:goto248
246 x=xs%(p)-4-l:y=11
248 poke199,1:sysml+12,x,y,a$:poke199,0:return
254 sysml+30,x,x+9,y,y,160,c%(2):return
262 sysml+12,x,y,a$:return
270 c=-1:fors=3to0step-1:sn%(s,p,p)=0:forr=5to0step-1
276 ifch%(r,s,p,p)>0thenforn=1toch%(r,s,p,p):c=c+1:r%(c,p)=r:s%(c,p)=s:next
278 sn%(s,p,p)=sn%(s,p,p)+ch%(r,s,p,p):next:so%(s,p)=12-sn%(s,p,p):next:return
284 sysml+30,x%(0,1)+2,x%(0,3)-1,y%(0,2)+2,y%(0,0)-1,160,c%(2):return
292 gosub146:onpgoto316,318,316
298 ift%(p)>0thenc=t%(p)-1:gosub138:ifs>-1then302
300 sysml+30,x,x,y,y+3,160,c%(2):goto308
302 sysml+30,x,x,y,y+1,160,c%(1)
304 gosub162:sysml+12,x,y+2,s$(s):sysml+12,x,y+3,r$(r):poke646,c%(2)
306 sysml+30,x-1,x-1,y,y+3,160,c%(1)
308 x=x+1:sysml+30,x,x,y,y+3,160,c%(2):x=x+1
310 ift%(p)<11thenc=t%(p)+1:gosub138:ifs>-1then314
312 sysml+30,x,x,y,y+3,160,c%(2):goto320
314 gosub162:sysml+12,x,y,r$(r):sysml+12,x,y+1,s$(s):poke646,c%(2):goto320
316 sysml+30,x,x+1,y,y,160,c%(2):goto320
318 sysml+30,x,x,y,y+1,160,c%(2)
320 c=t%(p):return
326 on1+fnec(p)goto338:onpgoto334,336,334
332 sysml+30,x%(0,p),x%(15,p)+2,y%(0,p),y%(0,p)+3,160,c%(2):goto338
334 sysml+30,x%(0,p),x%(0,p)+1,y%(0,p),y%(15,p),160,c%(2):goto338
336 sysml+30,x%(0,p),x%(15,p),y%(0,p),y%(0,p)+1,160,c%(2)
338 return
342 sysml+39,hg:pokerv+48,peek(mv+2):return
350 sysml+42,hg:pokemv,lg:pokemv+2,peek(rv+48):return
358 sysml+48,12,28,13,15,fna(6+z):gosub366:bn=n+1:return
366 n=peek(mv+2):pokerv+49,n:i%=peek(rv+50+z):pokemv+2,n+i%
372 m=fna(11+z):sysml+129,m,m+4*i%,hd*256+4*n:return
378 sysml+30,12,28,13,15,160,c%(2):pokemv+2,peek(rv+49):bn=-1:return
386 sysml+36,i%,255,c%(1):return
394 sysml+36,i%,255,c%(3):return
402 sysml+30,xs%(1)+1,xs%(3)-1,ys%(2)+1,ys%(0)-1,160,c%(2)
408 sysml+30,xs%(0)-1,xs%(0)+10,ys%(0),ys%(0),160,c%(1)
410 sysml+30,xs%(1),xs%(1),ys%(1)-1,ys%(1)+10,160,c%(1)
412 sysml+30,xs%(2)-1,xs%(2)+10,ys%(2),ys%(2),160,c%(1)
414 sysml+30,xs%(3),xs%(3),ys%(3)-1,ys%(3)+10,160,c%(1):return
420 gosub466:fori=0to1:u%(i)=p%(sb,i,0)+p%(sb,a2%(i),0):v%(i)=u%(i):next
428 poke646,c%(0):sysml+12,14,8,a$(12):on2+(f=2)goto436
430 i=tb:on1+np%(i)goto434:i=td:on1+(np%(i)=0)goto436
432 v%(i)=10*m%(0+sb,i)+10*m%(0+sb,a2%(i)):on2+(u%(i)=v%(i))goto436
434 poke646,c%(3+i):sysml+12,13,13,t$(i):poke646,c%(0):sysml+12,17,13,a$(13)
436 l=4:fori=0to1:poke646,c%(3+i):y=9+i:sysml+12,10,y,t$(i)
438 n=np%(i):gosub494:sysml+12,10+4,y,a$:n=u%(i):gosub494:sysml+12,10+9,y,a$
440 n=np%(i)+v%(i):on1+(i=tb)goto442:n=n*(f+1):n=n+(n+bp)*(np%(i)<np%(2)orf=2)
442 gosub494:sysml+12,10+15,y,a$:np%(i)=n:ns%(i)=ns%(i)+n:next
446 poke646,c%(3+tb):sysml+12,14,12,t$(tb)
448 poke646,c%(0):sysml+12,18,12,a$(15+(np%(tb)<bp)):poke646,c%(2):m=240:gosub36:gosub474
454 on2+(ns%(0)<1500andns%(1)<1500)goto462
456 q=5:gosub466:t=tb+(tb-td)*(ns%(tb)<1500):poke646,c%(3+t):sysml+12,12,10,t$(t)
460 poke646,c%(0):sysml+12,16,10,a$(16):poke646,c%(2)
462 return
466 sysml+30,9,30,7,14,160,c%(4)+16:return
474 sysml+30,xs%(1)+6,xs%(1)+8,ys%(2),ys%(2),160,c%(1)
480 sysml+30,xs%(3)-4,xs%(3)-1,ys%(2),ys%(2),160,c%(1)
482 sysml+30,xs%(1)+6,xs%(1)+9,ys%(0)+1,ys%(0)+2,160,c%(1):l=5:x=xs%(3)-5
486 fort=0to1:poke646,c%(3+t):n=ns%(t):gosub494:y=ys%(0)+1+t:gosub262:next:poke646,c%(2):return
494 a$=right$(a$(27)+str$(n),l):return
502 onpgoto510,508,510
508 poke646,c%(3):sysml+12,xs%(p)+2,ys%(p),a$(m):goto512
510 poke646,c%(4):fori=1to6:sysml+12,xs%(p),ys%(p)+i+1,mid$(a$(m),i,1):next
512 poke646,c%(2):return
518 fors=0to3:k=0+s:m%(k,p)=ch%(0,s,p,p)
528 n=0:forl=0to1:a=(ch%(2,s,p,p)>landch%(3,s,p,p)>l):n=n-a:l=1+(1-l)*a:next
530 k=8+s:m%(k,p)=n
532 n=0:forl=0to1:forr=1to5:gosub558:r=5+(5-r)*a:next:n=n-a:l=1+(1-l)*a:next
534 k=17+s:m%(k,p)=n
536 k=4+s:m%(k,p)=((ch%(2,s,p,p)>1)+(ch%(3,s,p,p)>1))*(m%(17+s,p)=1):next
542 fork=13to16:r=k-12-(k=16):n=0
544 forl=0to1:fors=0to3:gosub558:s=3+(3-s)*a:next:n=n-a:l=1+(1-l)*a:next:m%(k,p)=n:next
550 k=12
552 m%(k,p)=-(ch%(1,0,p,p)>0andch%(2,3,p,p)>0)-(ch%(1,0,p,p)>1andch%(2,3,p,p)>1)
554 return
558 a=(ch%(r,s,p,p)>l):return
566 m=0:forj=0to3:k=13+j:m=m+(40+20*j)*fnmm(m%(k,p)):next
578 ifm%(12,p)>0thenm=m+40:ifm%(12,p)>1thenm=m+260
582 fors=0to3:m=m+20*m%(8+s,p):next:fors=0to3
588 p%(s,p,0)=m+10*m%(0+s,p):k=17+s:p%(s,p,0)=p%(s,p,0)+150*fnmm(m%(k,p))
590 onm%(k,p)goto592,594:p%(s,p,0)=p%(s,p,0)+20*m%(8+s,p):goto596
592 p%(s,p,0)=p%(s,p,0)+20*m%(4+s,p)
594 p%(s,p,0)=p%(s,p,0)-20*m%(8+s,p)
596 next:return
1002 q=3:gosub402:pokemv+2,4:np%(0)=0:np%(1)=0
1006 pd=a1%(pd)+(a1%(pd)-pd)*(f=2andbp=290):p=pd
1008 m=17:gosub502:poke176,lr:poke177,hr:poke178,48:sysrl
1010 sysml+129,fna(2),fna(2)+768,fna(3):sysml+129,fna(2),fna(2)+128,fna(5)
1012 fori=0to3:p=a1%(p):gosub1034:gosub270:gosub102:next:return
1034 forc=0to11:v=int((peek(rv+12*p+c)-1)/2):s=int(v/6):r=int(v-s*6)
1038 ch%(r,s,p,p)=ch%(r,s,p,p)+1:next:return
1202 bp=290:p=a1%(pd):pb=p:v=0:fori=0to3:bp%(i)=0:v%(i)=-1:next
1206 gosub518:gosub566:gosub1268:w=0:fors=1to3:ifp%(s,p,3)<p%(w,p,3)then1214
1210 ifp%(s,p,3)>p%(w,p,3)thenw=s:goto1214
1211 ifu%(s)<u%(w)then1214
1212 ifu%(s)>u%(w)thenw=s:goto1214
1213 ifsn%(s,p,p)>sn%(w,p,p)thenw=s
1214 next:v%(p)=w
1224 iffnhp(p)thengosub1360:onqgoto1264,1264,1238
1236 gosub1346:gosub12:onqgoto1264,1264
1238 ifathenpb=p:a$=str$(bp):goto1242
1240 v=vorb%(p):a$=a$(0)
1242 gosub234:m=40:gosub36:if(vorb%(pb))=15thenon2+(v=15)goto1245,1248
1244 p=a1%(p):on2+v%(p)goto1206:on2+((vandb%(p))=0)goto1224,1244
1245 gosub466:poke646,c%(0):sysml+12,16,10,a$(18):poke646,c%(2):m=40:gosub36:goto1264
1248 gosub284:p=pb:tb=pband253:td=1-tb:iffnhp(p)thengosub1382:onqgoto1264,1264,1254
1252 sb=v%(p):gosub12:onqgoto1264,1264
1254 a$=a$(4+sb):gosub234:m=40:gosub36:gosub284:t=tb:m=19:gosub502:s=sb:gosub162
1260 sysml+12,xs%(p),ys%(p),s$(sb):sysml+12,xs%(p)+9*(1-t),ys%(p)+9*t,s$(sb)
1261 poke646,c%(3+t):l=4:n=bp:gosub494:x=xs%(3)-4:y=ys%(2):gosub262:poke646,c%(2)
1264 return
1268 fors=0to3:p%(s,p,1)=0:p%(s,p,2)=0:u%(s)=0:next
1276 fors=0to3:m=sn%(s,p,p):ifm=0then1280
1278 n=0:forr=5to0step-1:n=n+2:u%(s)=u%(s)+ch%(r,s,p,p):r=r+r*(n>=m):next
1280 next:fors=0to3:sp=s:fork=1to3:sp=a1%(sp):p%(s,p,1)=p%(s,p,1)+u%(sp)*20:next:next
1284 fors=0to3:j=0:m=sn%(s,p,p)+int(so%(s,p)/3+0.5):ifsn%(s,p,p)=0then1290
1285 ifu%(s)>=3thenp%(s,p,1)=p%(s,p,1)+20*m:goto1290
1286 n=0:forr=5to0step-1:n=n+2:j=j+ch%(r,s,p,p):r=r+r*(n>=m):next
1288 p%(s